.TH E1432_INIT_MEASURE_MASTER_FINISH 3 E1432
.SH NAME
e1432_init_measure_master_finish \- Master side measurement init
e1432_init_measure_master_setup  \- Master side measurement init
e1432_init_measure_slave_finish  \- Slave side measurement init
e1432_init_measure_slave_middle  \- Slave side measurement init
e1432_init_measure_slave_setup   \- Slave side measurement init
.IX e1432_init_measure_master_finish(3) 3
.IX e1432_init_measure_master_setup(3) 3
.IX e1432_init_measure_slave_finish(3) 3
.IX e1432_init_measure_slave_middle(3) 3
.IX e1432_init_measure_slave_setup(3) 3
.SH SYNOPSIS
.cS
SHORTSIZ16 e1432_init_measure_master_finish(E1432ID hw, SHORTSIZ16 ID,
                                            SHORTSIZ16 wait_after)
SHORTSIZ16 e1432_init_measure_master_setup(E1432ID hw, SHORTSIZ16 ID,
                                           SHORTSIZ16 wait_after)
SHORTSIZ16 e1432_init_measure_slave_finish(E1432ID hw, SHORTSIZ16 ID)
SHORTSIZ16 e1432_init_measure_slave_middle(E1432ID hw, SHORTSIZ16 ID)
SHORTSIZ16 e1432_init_measure_slave_setup(E1432ID hw, SHORTSIZ16 ID)
.cE
.SH DESCRIPTION

These functions are \fInot\fR normally needed by the typical
application.  They are provided for use in special circumstances
involving multiple VXI mainframes and multiple processes running the
measurements in those mainframes.  The typical application should
simply use \fIe1432_init_measure\fR instead.

These functions take the place of calling the (much simpler)
\fIe1432_init_measure\fR function.  Please see the documentation on
\fIe1432_init_measure\fR for more detail on what happens when a
measurement is started.

The five functions \fIe1432_init_measure_slave_setup\fR,
\fI_slave_middle\fR, \fI_slave_finish\fR, \fI_master_setup\fR, and
\fI_master_finish\fR are used for making measurements for the special
case of multiple groups of modules sharing common TTLTRG lines for
clocking and sync.

These groups will each run in a separate UNIX (NT?) process (see below
if you care why).

The application program must establish interprocess communications to
allow these five functions to be called in the following order.

One process controlling one of the module groups must be designated as
the "Master".  This should be the group that is at the head of the TTL
trigger line routing.  VXI mainframe extenders currently have a one
way routing of TTL lines between mainframes so it is important to
watch directions and which group is driving TTL sync.

.cS

                                 TIME
                                    
                                   V
          "Master process"         |           "Slave process"
                                   |
                                   |
                                   +--------------------+
                                   .                    |
                                   .    --------------------------------
                                   .    |e1432_init_measure_slave_setup|
                                   .    --------------------------------
                                   .                    |
                +---------------------------------------+
                |                  .
---------------------------------  .
|e1432_init_measure_master_setup|  .
---------------------------------  .
                |                  .
                +---------------------------------------+
                                   .                    |
                                   .    ---------------------------------
                                   .    |e1432_init_measure_slave_middle|
                                   .    ---------------------------------
                                   .                    |
                +---------------------------------------+
                |                  .
---------------------------------- .
|e1432_init_measure_master_finish| .
---------------------------------- .
                |                  .
                +---------------------------------------+
                                   .                    |
                                   .    ---------------------------------
                                   .    |e1432_init_measure_slave_finish|
                                   .    ---------------------------------
   
.cE

Why is this so complex?  Why use separate processes?  Normally you
wouldn't.  But some applications might want to deal with separate
channel groups using separate processes, and still provide for all of
the modules in all of the groups running synchronously.  This is what
is needed to deal with that.

.SH "RESET VALUE"
Not applicable.
.SH "RETURN VALUE"
Return 0 if successful, a (negative) error number otherwise.
.SH "SEE ALSO"
.na
e1432_init_measure, e1432_arm_measure_master_finish, e1432_set_mmf_delay
.ad
